
// 规则状态枚举
export enum RuleState {
    Disabled = 'disabled',   // 禁用
    Enabled = 'enabled'      // 启用
}

// 基础规则选项接口
export interface FilterRuleOptions {
    label: string;
    value: string;
    soundEnabled: boolean;
    type: 'currency' | 'equipment' | 'jewel' | 'flask' | 'skillgem' | 'unique' | 'normalequipment' | 'misc' | 'global';
    color?: string;
    bgColor?: string;
    tap?: string;
    displayEnabled?: boolean;
}

// 规则生成结果接口
export interface RuleGenerationResult {
    content: string;
    state: RuleState;
    isValid: boolean;
    warnings?: string[];
}

// 规则样式配置接口
export interface RuleStyleConfig {
    fontSize: number;
    textColor: string;
    borderColor: string;
    backgroundColor: string;
    iconSize?: number;
    iconColor?: string;
    iconShape?: string;
}

/**
 * 物品类型配置接口
 */
export interface TypeConfig {
    /** 物品类别 */
    class: string | null;
    /** 图标颜色 */
    icon: string;
    /** 图标形状 */
    iconShape: string;
    /** 规则名称 */
    name: string;
    /** 字体大小 */
    fontSize: number;
}

/**
 * 将十六进制颜色值转换为RGB格式字符串
 * @param hex 十六进制颜色值（如 "#ff0000" 或 "ff0000"）
 * @returns RGB格式字符串（如 "255 0 0"）
 */
export function hexToRgb(hex: string): string {
    // 移除可能存在的 # 前缀
    hex = hex.replace(/^#/, '');

    // 如果是简写形式（如 #fff），转换为完整形式
    if (hex.length === 3) {
        hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
    }

    // 如果输入的是RGB格式（如 "255 0 0"），直接返回
    if (hex.includes(' ')) {
        return hex;
    }

    // 解析十六进制值
    const r = parseInt(hex.substring(0, 2), 16);
    const g = parseInt(hex.substring(2, 4), 16);
    const b = parseInt(hex.substring(4, 6), 16);

    // 返回RGB格式字符串
    return `${r} ${g} ${b}`;
}